home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 2
/
CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso
/
magazine
/
amiga_e
/
e_v3.2a_extras
/
pdsrc
/
ag2txt
/
ag2txt.doc
next >
Wrap
Text File
|
1993-10-07
|
6KB
|
146 lines
Ag2txt - Turns AmigaGuide files into flat, readable and printable text.
======
Function
========
Ag2txt is a fictious program. It becomes reality in the form of "ag2txt13"
for KickStart 1.3 (maybe older versions, too) and "ag2txt20" for KickStart
2.0 (and above). The purpose of Ag2txt is to convert AmigaGuide hypertext
files into flat, readable and printable text. It does this by recognising
nodes and links and highlighting these. All other hypertext information is
discarded. This means that if the hypertext document comprises several
files you will need to convert all of them.
The converted file uses Ansi escape sequences to do the highlighting, so
any decent Amiga text reader should display them properly. Also, any
decent printer driver will convert these sequences into the appropriate
printer control codes, so you can send the file directly to PRT: and have
it printed.
At first sight this may seem like a completely useless program. I agree.
AmigaGuide and MultiView are much better and hypertext is really good fun.
But there are times when you want to just read the text, and printing
hypertext properly would require a very strange printer and some weird
paper! In fact, I have derived a C version of this program so that I can
run it on a Unix machine (in an Xterm).
A blatant plug now follows: Ag2txt was written in Amiga E (v2.1b), which is
a Public Domain Amiga-specific programming language based heavily on C and
with many other useful features 'borrowed' from other language. Its syntax
is very much like Pascal and Modula-2. It's brilliant. You must get a
copy. Find it on Aminet in dev/lang, and there's even a dev/e with loads
of programs and text. Find it also on Fred Fish disks 810 and 848. The
author, Wouter van Oortmerssen, is an exceptionally pleasant and helpful
guy, and there's a Amiga E mailing list where he and others can help you
with any problems (send E-mail to "amigae-request@bkhouse.cts.com" asking
to subscribe).
Usage
=====
Ag2txt13
-------
Ag2txt13 is the KickStart 1.3 (and above, of course) version of Ag2txt. It
should also work on earlier KickStarts but I have no way of testing this.
This version is not as configurable as ag2txt20, in that you can only
specify the input file and the output is sent to the console (this can be
redirected of course).
As it stands, nodes are highlighted in reverse video and links in italics.
This is not configurable from the command line like ag2txt20, but the
source is fairly easy to change if you prefer some other setup.
As an example, to convert "docs:reference.guide" to "ram:reference.txt":
1> ag2txt13 >ram:reference.txt docs:reference.guide
To convert "docs:reference.guide" and print it:
1> ag2txt13 >prt: docs:reference.guide
Ag2txt20
--------
Ag2txt20 is the KickStart 2.0 (and above) version of Ag2txt, and it has a
nice, standard argument template. This enables the user to specify input
and output files (with output defaulting to stdout/console), and to change
the way nodes and links are highlighted. The template for the arguments
is:
FROM/A,TO,NODEFONT=NODE/K,LINKFONT=LINK/K
This means the FROM (input) file must be specified, and all the others are
optional. Keywords need not be used for the FROM and TO arguments but if
you use them you can write the arguments in any order. Otherwise the FROM
argument is expected before the TO argument. Keywords must be used for the
NODEFONT and LINKFONT arguments (e.g., NODEFONT=PLAIN), and these may occur
anywhere on the command line. A shorthand for the NODEFONT and LINKFONT
keywords are NODE and LINK (respectively). Therefore, NODEFONT=PLAIN is
the same as NODE=PLAIN. The possible values for fonts are:
PLAIN (normal typeface)
BOLD (bold typeface)
ITALIC (italic typeface)
REVERSE (reverse video)
These default to REVERSE for NODEFONT and ITALIC for LINKFONT. If you plan
to print the document it might be best to not use REVERSE. It depends how
you printer driver works.
As an example, to convert "docs:reference.guide" to "ram:reference.txt"
using the default font setup:
1> ag2txt20 from=docs:reference.guide to=ram:reference.txt
The same conversion but using a bold typeface for the nodes:
1> ag2txt20 to=ram:reference.txt nodefont=bold from=docs:reference.guide
This time using a bold typeface for the links and redirecting the standard
output to the destination file:
1> ag2txt20 >ram:reference.txt from=docs:reference.guide link=bold
This time printing the converted file with nodes in bold:
1> ag2txt20 node=bold to=prt: from=docs:reference.guide
Bugs/Problems
=============
At the moment it's fairly memory hungry, requiring two copies of the
hypertext file to be present in memory. I did this because the filter
version (read a byte, write a byte) was *so* slow on my Amiga.
Also, I assume that the produced file will be no bigger than the source
file (which is a very fair assumption, given the amount of information the
converter discards!). A filter version would not require any such
assumptions.
It's very easy to alter the source so that using a plain font for either
nodes or links means that no escape sequences are generated (helpful if
you've got a fussy printer). I don't know why I didn't do this, but it's a
good, simple exercise for the reader! Get Amiga E. Learn Amiga E. Be
hap-E.
Implementation
==============
The source is supplied for both programs. You need the Amiga E compiler
but it's Public Domain and easily available and brilliant so that's not a
problem, is it? Basically, ag2txt is implemented using a tiny state
machine a is fairly grotty. But it works. At least, it works for me. I
find it useful (for reading Amiga Report!).
Legal Junk
==========
This program (even if it is small) is Copyright (c) 1993 Jason R. Hulance.
Apart from that the Gnu Public License holds. You can contact me by E-mail
at "m88jrh@ecs.oxford.ac.uk".